//
//  WBWelcome.swift
//  czWB
//
//  Created by Qing on 2018/12/27.
//  Copyright © 2018年 成哥哥. All rights reserved.
//

import UIKit

class WBWelcome: UIView {
    
    @IBOutlet weak var iconView: UIImageView!
    @IBOutlet weak var labelView: UILabel!
    @IBOutlet weak var iconCons: NSLayoutConstraint!
    
    /// 使用xib创建欢迎回来的页面。 类方法概念：被类型自己调用的方法叫做类型方法
    class func welComeview() -> WBWelcome {
    
//        把xib文件打包起来，放到缓存。
        let nib = UINib(nibName: "WBWelcome", bundle: nil)
//        实例化xib文件
        let v = nib.instantiate(withOwner: nil, options: nil)[0] as! WBWelcome
        
        v.frame = UIScreen.main.bounds
        
        return v
    
    }
    
    
//    从Interface Builder存档或nib文件加载后，准备接收器以进行修改。
//    如果在initWithCoder上修改，是无效和的。因为此时coder只是刚刚从xib的二进制文件将视图数据完成，还没有建立关联
    override func awakeFromNib() {
        
        let urlString = WBNetworkManager.shared.userAcount.avatar_large
        let url = URL(string: urlString!)
        
        iconView.setImageWith(url!, placeholderImage: UIImage(named: "welComen_image_pro"))
        
//        iconView.layer.cornerRadius = iconView.bounds.width * 0.5
//        iconView.layer.masksToBounds = true
        
    }
    
    
    /// 当视图被添加到view上执行, 添加动画。
    override func didMoveToWindow() {
        
//      视图是能过自动布局来设置的，只是添加了约束，当视图被添加到主界面后，需要重新更新控件约束。
        self.layoutIfNeeded()
        
//        添加动画：改变控件约束位置，然后更新约束就可以了。
        iconCons.constant = bounds.size.height - 420
        
        UIView.animate(withDuration: 1.0,
                       delay: 0,
                       usingSpringWithDamping: 0.7,
                       initialSpringVelocity: 0,
                       options: [],
                       animations: {

                        self.layoutIfNeeded()

        }) { (_) in

//            当头像完成后文字慢慢显示出来
            UIView.animate(withDuration: 1, animations: {
                
//            让欢迎回来文字显示出来
                self.labelView.alpha = 1
                
                self.removeFromSuperview()
            })
        }
    }
    
}
